home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 May
/
EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso
/
recent2
/
cnet_milles.lha
/
Milles
/
CNetMilles
< prev
next >
Wrap
Text File
|
1997-04-08
|
60KB
|
1,194 lines
/**************************************************************************\
$VER: CNetMilles, v1.18 (8-Apr-97) by Dotoran of Frontiers!
\**************************************************************************/
options results;signal on SYNTAX;signal on ERROR;signal on IOERR
a=sourceline(2);parse var a . . ", "ver" ("date")" .;a=random(,,time("s"))
tr=transmit;se=sendstring;gc=getchar;gu=getuser;gs=getscratch;mg=maygetchar
a="rexxsupport.library";if ~show("l",a) then if ~addlib(a,0,-30) then exit
parse source . . fp .;path=left(fp,max(lastpos('/',fp),lastpos(':',fp)))
amigascores=0 /* Can the Amiga get a High Hand/Game Score? (1=Y,0=N) */
breakinF=1 /* Allow Break-In Mode in Human vs Amiga? (1=Y,0=N) */
qk=0;waitF=0
gu 1302307;arg1=result;gu 1302368;arg2=result;gu 1302429;arg3=result
if arg1="?"|arg1="/"|upper(left(arg1,1))="H" then do
tr "f1n1cbMille Bornes c9QuickStart cdArgumentsc7: cf(c7Up to cd4 c7may be specifiedcf)n1"
tr "ce1st - How many PLAYERS in the game to start.n1cf2nd - WHICH player will YOU control in the game."
tr "ce3rd - The GAME SPEED will be set to this value(between 1 and 200)."
tr "cf4th - Y or N as to if you'd like control over the PARTNER's hand.n1"
se "ca Only the ce1st caargument is cbREQUIRED cato initiate a c9QUICKSTART cagame. "
se "The cf4th caargument may be specified in lieu of a ce3rd caargument if no "
tr "preset cdGame Speed cawill be used.n2cdHere are some examplescf:n1"
tr "ceMIL 3 : Start a 3-Player game QUICKLY(You'll be Player 1)."
tr "cbMIL 3 2 : Start a 3-Player game where you'll be Player 2."
tr "ceMIL 4 2 y : 4-Player game, with you as Player 2 and your partner."
tr "cbMIL 4 2 1 n : 4-Player game, with you as Player 2. Game Speed is 1."
tr "ceMIL 6 3 50 y : 6-Player game, with you as Player 3 and 6. Speed is 50.n1"
exit;end
if datatype(arg1,"n")=1&arg1>1&arg1<7&arg1~=5 then do;qk=1
if arg1>3 then do;gu 1302490;arg4=upper(result);end
if arg2=""|arg2>arg1 then arg2=1
end
START: /* When a new GAME starts, enter here. */
changewhere "Milles "ver ; oldwhere=result ; gt.=0
call SETUP ; call SETUP2 ; gu 1 ; handle=result
gu 3 ; realname=word(result,1) ; playF.=0 ; lastsaved=0
if handle=realname then do;handle=handle" 1";realname=realname" 2";end
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr "cb Mille Bornes c7originally copyrighted in ca1962 c7by ceParker Brothersn1"
do i=1 to 5;game.i="cf"i"cb. c7This cbSaved cdGame Slot c7is c9Emptyc7.";end i
gu 39;df="mail:users/"result"/_milles";a=0;if exists(df) then do
do i=1 to 5;a=a+exists(df||i);end i;if a>0 then call RELOADGAME;end
if qk then do ; players=arg1 ; c=arg2
if index("YN",arg3)>0 then do;arg4=arg3;arg3="";end
if arg3~="" & arg3>=1 & arg3<=200 then waitF=arg3
tr "n7cb>7Mille Bornes c9QUICKSTART ce"players"-Player c7game, with cayou c7as player ca"c"c7..."
if arg1>3 then tr ">ac7In addition, you "word("c9won't cawill",(arg4="Y")+1)" c7be playing your cepartner's c7hand..."
if arg3=waitF then tr ">ac7The cbGame Speed c7has been capreset c7to cd"waitF" c7as well..."
playF.c=1 ; name.c=handle ; human=c ; comp=0
if arg1>3 & arg4="Y" then do
if players=6 then do;if c<4 then c=c+3;else c=c-3;end
if players=4 then do;if c<3 then c=c+2;else c=c-2;end
playF.c=1 ; name.c=realname ; end
call READHSCORES ; call READGSCORES
if players<4 | players=6 then wintotal=700 ; else wintotal=1000
signal START2 ; end
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr "cb Mille Bornes c7originally copyrighted in ca1962 c7by ceParker Brothersn1"
call TITLE
se SHOWTXT("c7View the cbMille Bornes cainstructions c7now? cf[ceNocf]ce: s",8)
se "u";gc;a=result;if a~="Y" then tr "NoH";else tr "YesH#0"path"CNetMilles.docs}f1"
se "n1c7Want to c9watch c7the ceAmiga c7play against itself? cf[ceNocf]ce: ";gc;a=result
if a="Y" then do;tr "Yes";comp=1;human=1;end;else do;tr "No";comp=0;fast=0;end
se "n1c7How many ceplayers c7will be caplaying c7today? cf(cb[ce2cb]cf/ce3cf/ce4cf/ce6cf)ce: ";gc;a=result
if a<2|a>6|a=5 then a=2 ; players=a ; tr players ; call READHSCORES ; call READGSCORES
if comp=0 then do
se "n1c7Which ceplayer c7would cfYOU c7like to c6control c7today? cf(cb[ce1cb]cf-ce"a"cf)ce: "
gc ; c=result ; if c<1 | c>a | (c=5 & a<6) then c=1 ; playF.c=1 ; name.c=handle ; human=c ; tr c
end
else do
se "n1c7Should we play caSLOW ENOUGH c7for you, a ceHUMANc7, to watch? cf[ceYescf]ce: "
gc ; fast=(result="N") ; tr word("Yes No",fast+1)
end
if comp=0 & players>3 then do
se "n1c7Would you cbalso c7like to c6control c7your cePARTNER's c7hand as well? cf[ceYescf]ce: "
gc;a=result;if a="N" then tr "No.";else do;tr "Yes!"
if players=6 then do;if c<4 then c=c+3;else c=c-3;end
if players=4 then do;if c<3 then c=c+2;else c=c-2;end
playF.c=1 ; name.c=realname ; end ; end
if players<4 | players=6 then wintotal=700 ; else wintotal=1000
se "n1c7View the cbHigh c9Hand c7& c9Game cfScores c7for ce"players"-Player cdGamesc7? cf[ceNocf]ce: "
gc;a=result;if a="Y" then do;tr "Yes";call SHOWHSCORES;call SHOWGSCORES;end;else tr "No."
se SHOWTXT("c7View cePre-Game cbHelp c7screens now? cf[ceNocf]ce: s",8)
se "u";gc;a=result;if a~="Y" then do;tr "No";signal START2;end;else tr "Yes"
if comp=0 & breakinF=0 then signal NOBREAKIN
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr "cb Mille Bornes c7originally copyrighted in ca1962 c7by ceParker Brothersn1"
tr "cf"center("Hidden Command Mode Options",79)
tr "cc"center(copies(d2c(196),29),79)"n1"
se "ca Remember, there are numerous commands available to you while you are "
se "awaiting your next turn. Simply press one of the following, while an "
tr "opponent is taking their turn to activate them:n1"
tr "cdQc7. cdAsks if you'd like to Quit (and possibly SAVE) the current game.n1"
tr "cbRc7. cbRedraws the game screen, in the event line noise corrupts the screen.n1"
if comp=0 then do
se "c9Bc7. c9:2Break-In (Available in `Amiga vs. Human' Games). Allows you to "
se "swap seats with any other player at the table, to kick out a HUMAN "
se "controlled partner, to swap WHO your Amiga partner is, or to pick up "
se "the reins of an Amiga controlled Partner. (Note, however, that use "
se "of the Break-In options will VOID your ability to obtain a High "
tr "Score!):0"
end
if comp=1 then do
se "c9Bc7. c9:2Break-In (Available in `Amiga vs. Amiga' Games). Allows you to "
se "`Sit In Place Of' one of the Amiga Players, allowing YOU to pick up "
se "where the Amiga controlled player left off. If you're watching a team"
se "game, you'll also be asked if you'd like to `Sit In' the partner's chair,"
se "in addition to the first chosen chair. (Note, however, that use of the "
tr "Break-In options will VOID your ability to obtain a High Score!):0"
end
se SHOWTXT("c7Press cdany key c7to continue...s",3)"ug1"
NOBREAKIN:
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr "cb Mille Bornes c7originally copyrighted in ca1962 c7by ceParker Brothersn1"
tr "cf"center("Other Command Mode Options",79)
tr "cc"center(copies(d2c(196),29),79)"n1"
se " caTo start a c9QUICKSTART cagame, you can specify up to cd4 arguments caAFTER "
tr "the cfMIL cacommand, as these examples illustrate:n1"
tr "ce MIL 3 : Start a 3-Player game QUICKLY. You'll be Player 1."
tr "cf MIL 2 2 : Start a 2-Player game, with you as Player 2."
tr "ce MIL 4 2 1 : Start a 4-Player game. You're Player 2, Speed is 1."
tr "cf MIL 4 2 1 y : Same as above, but you'll control the PARTNER as well."
tr "ce MIL 6 3 n : 6-Player game with you as Player 3 and an Amiga Partner."
tr "cf MIL 6 2 50 y : 6-Player game. You'll be Player 2 and 4. Speed=50.n1"
se "cdOc7. cd:2When `OLM-Waiting' appears in the lower right corner, pressing O will "
tr "allow you to read/respond to the OLM, then return to your game play!:0n1"
if comp=0 then do
se "cbFc7. cb:2When all cards in the Draw Pile have been picked up, you can opt to use "
tr "the FINISH command to have the hand automatically finished for you.:0n1"
end
START2:
t="Individual";if players>3 then t="Team"
se SHOWTXT("caAlright c7to start a ce"players"-Player cd"t" c7game right now? cf[ceYescf]ce: s",9)
se "u";gc;a=result;call CHECK;if a="N" then do;tr "No";signal AGAIN;end;else tr "Yes"
BEGIN: /* When a new HAND starts, enter here. */
turns=0 ; call CHECK ; call OPENDECK ; call DEAL ; call SCREEN
PLAY:
call TAKECARD ; call DISPLAY ; call CHECK
PLAY1: ; se "2Hce"left(name.player"cd",28,d2c(196))
if playF.player=0 | comp=1 then signal AMIGAPLAY
if cardsleft=0 then finT="c7/ceFc6inish";else finT="c0c0c0"
se SHOWTXT("c7Command? (ce1c7-ce7c7/c9Dc1iscardc7(c9!c7-c9&c7)/cbRc3edrawc7/caSc2peedc7/ceOc6LM"finT"c7/cf[cdQc5uitcf]c7)ce: s",30)
if comp=0 & breakinF=0 then bufferflush ; se "u";gc;a=result;call CHECK
/* Make sure player doesn't play an empty card slot. */
if (datatype(a,"n")=1 & a>words(hand.player) & a<8) | index("!@#$%^&",a)>words(hand.player) then do
se SHOWTXT("c7Yeah, right! I c9don't c7think so sport! Play an cbEXISTING c7card!",5,1);signal PLAY1;end
QUIT: ; if index("1234567!@#$%^&0DR*S9O.8F",a)=0 then do
se SHOWTXT("cdQuit c7playing cbMille Bornes c7now? cf[ceNocf]ce: s",8)
se "u";gc;a=result;call CHECK;if a~="Y" then do;tr "No";signal PLAY1;end
else tr "Yes";call SAVE;signal AGAIN;end
if (a="F"|a=8)&cardsleft>0 then signal PLAY1
if a="R" | a="*" then do ; tr "cbRc3edraw" ; call SCREEN ; call DISPLAY ; signal PLAY1 ; end
if a="S" | a=9 then do ; tr "caSc2peed"
se SHOWTXT("caAdjust cbSpeed c7of game? cf(ce0cf=ceNormalcf, ca1cf=caVery Fastcf, ca200cf=caVery Slowcf, cb[ce"waitF"cb]cf)ce: s",21)
se "ui4160 3}";gu 70;a=result;if a=""|a<1|a>200 then a=waitF;waitF=a;signal PLAY1;end
if (a="O" | a=".") then do ; tr "ceOc6LM"
if olm>0 then tr "f1n1@0cbWaiting c7for ceOLMc7..."
else tr "f1n1@0Create an OLM now...n1& OL}"
se "n1c7Press cdENTER c7to continue caGAMEce:i1"
call SCREEN ; call DISPLAY ; signal PLAY1 ; end
if (a="F" | a=8) & cardsleft=0 then do ; tr "Finish"
se SHOWTXT("c7Have the game cbautomatically c9finish c7this hand now? cf[ceYescf]ce: s",8)
se "u";gc;a=result;if a="N" then do;tr "No";signal PLAY1;end
tr "Yes";finish=1;comp=1;fast=1;signal PLAY1;end
if a="D" | a=0 | index("!@#$%^&",a)>0 then do ; tr "c9Dc1iscard"
if a="D" | a=0 then do
se SHOWTXT("c9Dc1iscard c7which card from your hand? c7(ce1c7-ce7c7/cf[cbOopscf]c7)ce: s",13)
se "u";gc;a=result;call CHECK;if a<1|a>7 then do;se "cbOops";signal PLAY1;end;se a;end;else a=index("!@#$%^&",a)
discard=word(hand.player,a) ; hand.player=delword(hand.player,a,1)
se SHOWTXT("ce"name.player" c9discards "GROWCARD(discard)" c7card!",3+6)
signal NEXTPLAYER ; end
cd=word(hand.player,a) ; tr a
/* Player tries to play MILEAGE */
if datatype(cd,"n")=1 then do
v1="OG FT AC ST SL" ; v2="GS SP RP RL EL"
do i=1 to 5 ; c=word(v1,i) ; b=word(v2,i) ; if battle.play="" then b="RL"
if (i<5 & battle.play=c) | (i=5 & speed.play="SL" & cd>50) then do
se SHOWTXT("c7Oops, I need to play "GROWCARD(b)" c7card first; sorry!",2+6)
signal PLAY1;end
end i
if battle.play~="RL" & index(safety.play,"RW")=0 then do
se SHOWTXT("c7Oops, I need to play "GROWCARD("RL")" c7card first; sorry!",2+6)
signal PLAY1;end
if cd=200 & pl200.play=2 then do
se SHOWTXT("c7Darn, I already used cdtwo `cf200 Mc7ile' c7cards towards my cd"wintotal" Mile c7goal.",7)
signal PLAY1;end
if total.play+value(cd)>wintotal then do
se SHOWTXT("c7Darn, I need to play cbEXACTLY cd"wintotal" c7miles to win this hand!",4)
signal PLAY1;end
se SHOWTXT("c7Alright, ce"name.player" c7plays "GROWCARD(cd)" c7card towards my cd"wintotal" Mile c7goal!",6+6)
distance.play=distance.play" "cd ; hand.player=delword(hand.player,a,1)
total.play=total.play+cd ; if cd=200 then pl200.play=pl200.play+1
signal NEXTPLAYER
end
/* Player plays a SAFETY */
if index("ET PP DA RW",cd)>0 then do
se SHOWTXT("ce"name.player" c7plays "GROWCARD(cd)" cbSafety c7card now.",4+6)
safety.play=safety.play' 'cd ; hand.player=delword(hand.player,a,1)
if cd="ET" & battle.play="OG" then do;battle.play=ob.play;discard="OG";end
if cd="PP" & battle.play="FT" then do;battle.play=ob.play;discard="FT";end
if cd="DA" & battle.play="AC" then do;battle.play=ob.play;discard="AC";end
if cd="RW" & battle.play="ST" then do;battle.play=ob.play;discard="ST";end
if cd="RW" & speed.play="SL" then do;speed.play=os.play;discard="SL";end
se SHOWTXT("ce"name.player" c7gets another turn for playing a cbSafety c7card!",4)
signal PLAY
end
/* Player plays a ROLL */
if cd="RL" & (battle.play="" | index("GS SP RP ST",battle.play)>0 &,
index(safety.play,"RW")=0) then do
se SHOWTXT("ce"name.player" c7plays "GROWCARD(cd)" c7card! Now play some ceMileage c7cards!",5+6)
hand.player=delword(hand.player,a,1) ; ob.play=battle.play ; battle.play=cd
signal NEXTPLAYER
end
/* Player plays a REMEDY */
v1=find("GS SP RP RL EL",cd)
if v1>0 then do
v2=word("ET PP DA RW RW",v1) ; v3=word("OG FT AC ST SL",v1) ; p=player
if index(safety.play,v2)>0 then do
se SHOWTXT("c7You don't need "GROWCARD(cd)" c7with "GROWCARD(v2)" c7safety card!",3+12)
signal PLAY1 ; end
if cd="RL" & battle.play="RL" then do
se SHOWTXT("c7A caRc2oll c7card is already exposed on your c9Battle Pilec7!",6)
signal PLAY1 ; end
if battle.play=v3 & cd~="EL" then do
se SHOWTXT("ce"name.p" c7plays "GROWCARD(cd)" c7card! Play a caRc2oll (caGc2reen) c7card next!",8+6)
hand.p=delword(hand.p,a,1) ; ob.play=battle.play ; battle.play=cd
signal NEXTPLAYER ; end
if speed.play="SL" & cd="EL" then do
se SHOWTXT("ce"name.p" c7plays "GROWCARD(cd)" c7card! Play ce75c7/ce100c7/ce200 cfMile c7cards now!",10+6)
hand.p=delword(hand.p,a,1) ; os.play=speed.play ; speed.play=cd
signal NEXTPLAYER ; end
se SHOWTXT("c7You have no need for "GROWCARD(cd)" c7card right now!",2+6)
signal PLAY1
end
/* Player plays a HAZARD */
v1="OG FT AC ST SL"
if index(v1,cd)>0 then do ; pl=0
if players=2 | players=4 then do
i=1 ; if play=1 then i=2 ; i2=i ; end
else do
se SHOWTXT("c7Play "GROWCARD(cd)" c7card on which player? cf(ce1c7-ce"players"c7/cf[cbOopscf])ce: s",11+6)
se "u" ; gc ; i=result ; call CHECK
if i<1 | i>players | (players<6 & i=5) | i=play then do ; tr "Oops!" ; signal PLAY1 ; end
i2=i ; if players=6 & i2>3 then i2=i-3 ; tr i ; end
if battle.i2~="RL" & cd~="SL" & (index("GS SP RP",battle.i2)>0 & index(safety.i2,"RW")=0) then do
se SHOWTXT("c7Sorry, but ce"name.i" c7has to play "GROWCARD("RL")" c7card first!",4+6)
signal PLAY1;end
if index("OG FT AC ST",battle.i2)>0 & cd~="SL" then do
se SHOWTXT("c7Sorry, ce"name.i"'s c9Battle Pile c7has "GROWCARD(battle.i2)" c7card showing!",5+6)
signal PLAY1;end
if speed.i2="SL" & cd="SL" then do
se SHOWTXT("c7Sorry, but ce"name.i" c7is already under a c9Speed Limit c7presently...",5)
signal PLAY1;end
v2=word("ET PP DA RW RW",find(v1,cd))
if index(safety.i2,v2)>0 then do
se SHOWTXT("c7You c9can'tc7! ce"name.i"'s c7showing "GROWCARD(v2)" c7safety card!",6+6)
signal PLAY1;end
if cd~="SL" then do;ob.i2=battle.i2;battle.i2=cd
se SHOWTXT("ce"name.player" c7plays "GROWCARD(cd)" c7card on ce"name.i"'s c9Battle Pilec7!",6+6);end
else do;os.i2=speed.i2;speed.i2=cd
se SHOWTXT("ce"name.player" c7plays "GROWCARD(cd)" c7card on ce"name.i"'s cbSpeed Pilec7!",6+6);end
hand.player=delword(hand.player,find(hand.player,cd),1)
if index(hand.i2,v2)>0 then pl=i2
if players>3 & index(hand.i,v2)>0 then pl=i
if pl>0 then do;hand.pl=delword(hand.pl,find(hand.pl,v2),1);coup.i2=coup.i2+1
se SHOWTXT("c7Uh Oh; car1COUP FOURREr0c7! ce"name.pl" c7has "GROWCARD(v2)" c7safety card!",8+6)
if (v2="RW"&battle.i2="ST")|v2~="RW" then battle.i2=ob.i2
if v2="RW" & speed.i2="SL" then speed.i2=os.i2
discard=cd;safety.i2=safety.i2" <"v2">";player=pl;play=i2
call TAKECARD;se SHOWTXT("c7Controlling play now passes to ce"name.pl"c7!",3)
signal PLAY;end;signal NEXTPLAYER;end
end
signal PLAY
SAVE:;if comp=1 then return
se SHOWTXT("c7Want to cbSAVE c7this game to cecomplete c7later? cf[ceYescf]ce: s",9)
se "u";gc;a=result;call CHECK;if a="N" then do;tr "No";return;end;else tr "Yes"
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr "cb Mille Bornes c7originally copyrighted in ca1962 c7by ceParker Brothersn1"
se "cbSaved c7games for: ce"handle"c7, "
if lastsaved>0 then tr "game cdlast cbsaved c7to caSlot cf#c7: ce"lastsaved"c7.n1"
else tr "this game has c9not yet c7been cbsavedc7.n1";do i=1 to 5;tr game.i;end i
se "n1cbSave c7to which cdGame Slotc7? cf(ce1cf-ce5cf/cb[c9DON'T SAVEcb]cf)ce: "
gc;a=result;call CHECK;if a<1|a>5|datatype(a,"n")=0 then do;tr "c9Don't Save";signal AGAIN;end
else tr a;if index(game.a,"Empty")=0 then do
se "n1c7This cdSlot c7is c9NOT c7empty. caAlright c7to cbSAVE c7over ceexisting c7game? cf[ceYescf]ce: "
gc;b=result;if b="N" then do;tr "No";signal SAVE;end;else tr "Yes";end
se "n1cbSaving c7to cdSlot ce"a"c7..."
v=date();d=word(v,1)"-"word(v,2)"-"right(word(v,3),2)" @ "time("c")
t="Individual";if players>3 then t="Team"
game.a="cf"a"cb. c7A cd"players"-Player c9"t" c7game last cbsaved c7on ca"d"c7.n1 "
if players<4 then do i=1 to players
game.a=game.a"c7(ce"i"c7) ce"left(name.i,21) ; end i
else do i=1 to players%2 ; j=i+2 ; if players=6 then j=i+3 ; t="" ; if i=2 then t="n1 "
game.a=game.a"c7(ce"i"c7) "left("ce"name.i"c7 and ce"name.j,33+9)" "t ; end i
call open(f1,df,"w");do i=1 to 5;call writeln(f1,game.i);end i;call close(f1)
call open(f1,df||a,"w") ; cards="";do i=1 to totcards;cards=cards" "cd.i;end i
call writeln(f1,ver);call writeln(f1,totcards"|"strip(cards))
call writeln(f1,card"|"discard"|"comp"|"human"|"wintotal"|"player"|"play"|"players"|"ext"|"turns"|"waitF"|x")
p=players;if p=4 then p=2;if p=6 then p=3
do i=1 to p ; call writeln(f1,safety.i"|"distance.i"|"battle.i"|"ob.i"|"speed.i"|"os.i"|"coup.i"|"pl200.i"|"total.i"|"gt.i"|x") ; end i
do i=1 to players ; call writeln(f1,playF.i"|"name.i"|"cpu.i"|"cpuEXT.i"|"hand.i"|x") ; end i
call close(f1) ; se "h9h7cbed!"
signal AGAIN
RELOADGAME:
if save=1 then do;call open(f1,df,"w");do i=1 to 5;call writeln(f1,game.i);end i;call close(f1);save=0;end
call open(f1,df,"r");do i=1 to 5;game.i=readln(f1);end i;call close(f1)
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr "cb Mille Bornes c7originally copyrighted in ca1962 c7by ceParker Brothersn1"
tr "cbSaved c7games for: ce"handle"n1";do i=1 to 5;tr game.i;end i
se "n1c7Want to cf<c9Dcf>c9elete c7game, cbResume c7game cf<ce1cf-ce5cf>c7, or cf[caSTART NEWcf]ce: "
gc;a=result;call CHECK;if index("12345D",a)=0 then do;tr "caStart NEW Game";return;end
if a="D" then do;tr "c9Delete Game"
se "n1c9Delete c7which game? cf(ce1cf-ce5cf/cb[ceOopscb]cf)ce: "
gc;a=result;call CHECK;if a<1|a>5|datatype(a,"n")=0|index(game.a,"Empty")>0 then do
tr "Oops";signal RELOADGAME;end;else tr "c9Deleting c7game ce"a"c7..."
address command "delete "df||a
game.a="cf"a"cb. c7This cbSaved cdGame Slot c7is c9Emptyc7."
save=1;signal RELOADGAME;end
if a<1|a>5|datatype(a,"n")=0|index(game.a,"Empty")>0 then do
tr "Oops";signal RELOADGAME;end ; else se "cbResume c7game ce"a
call open(f1,df||a,"r") ; vers=readln(f1)
v=readln(f1) ; parse var v totcards"|"cards
do i=1 to totcards ; cd.i=word(cards,i) ; end i ; v=readln(f1)
parse var v card"|"discard"|"comp"|"human"|"wintotal"|"player"|"play"|"players"|"ext"|"turns"|"waitF"|"j
p=players;if p=4 then p=2;if p=6 then p=3
do i=1 to p ; v=readln(f1)
parse var v safety.i"|"distance.i"|"battle.i"|"ob.i"|"speed.i"|"os.i"|",
coup.i"|"pl200.i"|"total.i"|"gt.i"|"j
end i
do i=1 to players ; v=readln(f1) ; parse var v playF.i"|"name.i"|"cpu.i"|"cpuEXT.i"|"hand.i"|"j ; end i
call close(f1)
call READHSCORES ; call READGSCORES ; lastsaved=a ; ht.=0 ; call SCREEN
call DISPLAY ; play=player ; if players=4 & player>2 then play=player-2
if players=6 & player>3 then play=player-3;call CHECKWIN
signal PLAY1
AMIGAPLAY:
do ap=1 to 7
if word(cpu.player,ap)=1 then do;call AMIGA1;iterate;end
if word(cpu.player,ap)=2 then do;call AMIGA2;iterate;end
if word(cpu.player,ap)=3 then do;call AMIGA3;iterate;end
if word(cpu.player,ap)=4 then do;call AMIGA4;iterate;end
if word(cpu.player,ap)=5 then do;call AMIGA5;iterate;end
if word(cpu.player,ap)=6 then do;call AMIGA6;iterate;end
if word(cpu.player,ap)=7 then do;call AMIGA7;iterate;end
end ap
signal NEXTPLAYER
AMIGA1: /* Consolidated Play ROLL Card! */
if (battle.play="" | index("GS SP RP ST",battle.play)>0) &,
index(hand.player,"RL")>0 & index(safety.play,"RW")=0 then do
se SHOWTXT("ce"name.player" c7plays "GROWCARD("RL")" c7card!",3+6)
hand.player=delword(hand.player,find(hand.player,"RL"),1)
ob.play=battle.play ; battle.play="RL" ; signal NEXTPLAYER ; end
return
AMIGA2: /* Consolidated Play a Remedy Card! */
v1="OG FT AC ST SL" ; v2="GS SP RP RL EL"
do i=1 to 5
if ( (i<5 & battle.play=word(v1,i)) | (i=5 & speed.play="SL") ) &,
( (i<4 & index(hand.player,word(v2,i))>0) |,
(i=4 & index(hand.player,"RL")>0 & index(safety.play,"RW")=0) |,
(i=5 & index(hand.player,"EL")>0 & index(safety.play,"RW")=0) ) then do
se SHOWTXT("ce"name.player" c7plays "GROWCARD(word(v2,i))" c7card!",3+6)
hand.player=delword(hand.player,find(hand.player,word(v2,i)),1)
if i<5 then do ; ob.play=battle.play ; battle.play=word(v2,i) ; end
else do ; os.play=speed.play ; speed.play="EL" ; end
signal NEXTPLAYER ; end
end i
return
AMIGA3: /* Consolidated Play Mileage */
v1="200 100 75 50 25"
if (index(safety.play,"RW")>0&(index("GS SP RP ST",battle.play)>0|,
battle.play=""))|battle.play="RL" then do
do i=1 to 5 ; c=word(v1,i) ; p=player
b=cpu200.p ; if cpu200.p=1 then b=(random(1,2)=2)
if (c=200 & (cpu200.b=0 | pl200.play=2)) |,
(c>50 & speed.play="SL") then iterate i
if index(hand.p,c)>0 & total.play+c<=wintotal then do
se SHOWTXT("ce"name.p" c7plays "GROWCARD(c)" c7distance card!",3+6)
distance.play=distance.play" "c ; total.play=total.play+c
hand.p=delword(hand.p,find(hand.p,c),1)
if c=200 then pl200.play=pl200.play+1
signal NEXTPLAYER
end
end i
end
return
AMIGA4: /* Consolidated Play a Hazard Card */
hands=2 ; if players=3 | players=6 then hands=3
v1="OG FT AC ST SL" ; v2="GS SP RP RL EL" ; v3="ET PP DA RW RW"
do i=1 to 5
if index(hand.player,word(v1,i))>0 then do
byV=1 ; order=random(1,2) ; lo=word("1 "hands,order)
hi=word(hands" 1",order) ; if hi=1 then byV=-1
do j=lo to hi by byV ; j2=j
if players=4 then j2=j2+2 ; if players=6 then j2=j2+3
if j=player | j2=player | index(safety.j,word(v3,i))>0 then iterate j
if i<5 & battle.j~="RL" then iterate j
if i=5 & speed.j="SL" then iterate j
se SHOWTXT("ce"name.player" c7plays "GROWCARD(word(v1,i))" c7card on ce"name.j"c7!",5+6)
if i<5 then do ; ob.j=battle.j ; battle.j=word(v1,i) ; end
else do ; os.j=speed.j ; speed.j=word(v1,i) ; end
hand.player=delword(hand.player,find(hand.player,word(v1,i)),1)
pl=0 ; if index(hand.j,word(v3,i))>0 then pl=j
if players>3 & index(hand.j2,word(v3,i))>0 then pl=j2
if pl>0 then do ; coup.j=coup.j+1
se SHOWTXT("c7Uh Oh; r1caCOUP FOURREr0c7! ce"name.pl" c7has the "GROWCARD(word(v3,i))" cbSafety Cardc7!",9+6)
if i<5 & battle.j=word(v1,i) then battle.j=ob.j
if i>3 & speed.j="SL" then speed.j=os.j
discard=word(v1,i) ; safety.j=safety.j" <"word(v3,i)">"
hand.pl=delword(hand.pl,find(hand.pl,word(v3,i)),1)
p=pl;if players=4&pl>2 then p=p-2;if players=6&pl>3 then p=p-3
player=pl ; play=j ; call TAKECARD
se SHOWTXT("caControlling c7play now passes to ce"name.pl"c7!",4)
signal PLAY ; end ; signal NEXTPLAYER
end j
end
end i
return
AMIGA5: /* Consolidated Educated Discard */
v1="EL RL GS SP RP" ; v2="RW RW ET PP DA"
do i=1 to 5 ; c=word(v1,i) ; b=word(v2,i) ; p=player
if index(hand.p,c)>0 & index(safety.play,b)>0 then do
se SHOWTXT("ce"name.p" c9discards "GROWCARD(c)" c7card!",3+6)
discard=c ; hand.p=delword(hand.p,find(hand.p,c),1)
signal NEXTPLAYER ; end
end i ; v1="25 50 75 100 200"
do i=1 to 5 ; c=word(v1,i) ; p=player
if index(hand.p,c)=0 |,
(c=200 & pl200.play<2 & cpu200.play>0) |,
(speed.play="SL" & c<75) |,
(total.play+c<=wintotal) then iterate i
se SHOWTXT("ce"name.p" c9discards "GROWCARD(c)" c7card!",3+6)
discard=c ; hand.p=delword(hand.p,find(hand.p,c),1)
signal NEXTPLAYER
end i ; v1="OG FT AC ST SL"
do i=1 to 5 ; c=word(v1,i) ; p=player
if index(hand.p,c)>0 then do
se SHOWTXT("ce"name.p" c9discards "GROWCARD(c)" c7card!",3+6)
discard=c ; hand.p=delword(hand.p,find(hand.p,c),1)
signal NEXTPLAYER ; end
end i
return
AMIGA6: /* Consolidated Play Safety Card */
v1="ET PP DA RW RW" ; v2="OG FT AC ST SL"
do i=1 to 5 ; c=word(v1,i) ; b=word(v2,i) ; p=player
if index(hand.p,c)>0 then do
se SHOWTXT("ce"name.p" c7plays "GROWCARD(c)" cbSafety c7card!",4+6)
safety.play=safety.play" "c;hand.p=delword(hand.p,find(hand.p,c),1)
if battle.play=b then do;battle.play=ob.play;discard=b;end
if i>3 & speed.play="SL" then do;speed.play=os.play;discard="SL";end
se SHOWTXT("ce"name.p" c7gets to take caanother c7turn now!",4)
signal PLAY ; end
end i
return
AMIGA7: /* Consolidated Random Discard */
p=player;if words(hand.p)=0 then return
cd=word(hand.p,random(1,words(hand.p)))
se SHOWTXT("ce"name.p" c9discards "GROWCARD(cd)" c7card!",3+6)
discard=cd ; hand.p=delword(hand.p,find(hand.p,cd),1)
return
TAKECARD:
if card+1<=totcards then card=card+1 ; else totcards=0
if totcards>0 then hand.player=hand.player" "cd.card
a='';do ii=1 to players;a=a' 'hand.ii;end ii
if words(a)=0 then signal CHECKWIN2
if words(hand.player)=0 then signal NEXTPLAYER
return
NEXTPLAYER:
call CHECKWIN ; player=player+1
if player>players then do ; turns=turns+1 ; player=1 ; end
play=player ; if players=4 & player>2 then play=player-2
if players=6 & player>3 then play=player-3
signal PLAY
CHECKWIN:
if total.play<wintotal then return
if finish=1 then do;finish=0;comp=0;end
if total.play=wintotal then do ; call DISPLAY
tr SHOWTXT("cfAlrightc7, ce"name.player" c7reached the cd"wintotal" Mile c7goal!",6,1) ; end
if players~=4 & wintotal=700 then do
if PlayF.player=1 then do
se SHOWTXT("c7Want to play the cbExtensionc7(to cd1000 Milesc7)? cf[ceNocf]ce: s",9);se "u"
gc;a=result;call CHECK;if a="Y" then do;tr "Yes!";ext=play;wintotal=1000;return;end
tr "No." ; signal CHECKWIN2
end
if PlayF.player=0 then do
if cpuEXT.player=2 | (cpuEXT.player=1 & random(1,2)=2) then do
se SHOWTXT("ce"name.player" c7opts to play the cbExtensionc7!",4,1)
cpuEXT.player=2;ext=play;wintotal=1000;return;end;else cpuEXT.player=0
se SHOWTXT("ce"name.player" c7opts c9NOT c7to play the cbExtensionc7!",6,1)
end
end
CHECKWIN2:
if finish=1 then do;finish=0;comp=0;end
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr bar;p=0;if players>2 & players~=4 then p=1;txt2="On Left Side";if players<4 then txt2="Opponents"
eq1="cc"copies(d2c(196),19)" "copies(d2c(196),19)" "copies(d2c(196),18)" ";eq2=copies(d2c(196),19)" "
txt="Player";if players=4|players=6 then txt=" Team"
se "cf FINAL STANDINGS cb"txt" 1 "txt" 2 "
if p then se txt" 3" ; se "n1"eq1 ; if p then tr eq2 ; else tr
se "cf"right(txt2,18)" ce"right(name.1,17)" "right(name.2,17)" "
if p then tr right(name.3,17) ; else tr
if players=4 then tr "cf"right("On Right Side",18)" ce"right(name.3,17)" "right(name.4,17)
if players=6 then tr "cf"right("On Right Side",18)" ce"right(name.4,17)" "right(name.5,17)" "right(name.6,17)
se eq1 ; if p then tr eq2 ; else tr
ht.1=total.1 ; ht.2=total.2 ; ht.3=total.3
se "cf Milestones Played "right(ht.1,16)
se " "right(ht.2,16)
if p then se " "right(ht.3,16)
a1=words(safety.1)*100 ; a2=words(safety.2)*100 ; a3=words(safety.3)*100
ht.1=ht.1+a1 ; ht.2=ht.2+a2 ; ht.3=ht.3+a3
se "n1c7Each Safety Played "words(safety.1)" x 100 ="right(a1,7)
se " "words(safety.2)" x 100 ="right(a2,7)
if p then se " "words(safety.3)" x 100 ="right(a3,7)
a1=(words(safety.1)=4)*700;a2=(words(safety.2)=4)*700
a3=(words(safety.3)=4)*700;ht.1=ht.1+a1;ht.2=ht.2+a2;ht.3=ht.3+a3
se "n1cf ALL 4 Safeties "right(a1,16)
se " "right(a2,16)
if p then se " "right(a3,16)
a1=coup.1*300 ; a2=coup.2*300 ; a3=coup.3*300
ht.1=ht.1+a1 ; ht.2=ht.2+a2 ; ht.3=ht.3+a3
se "n1c7 Coup Fourre's "coup.1" x 300 ="right(a1,7)
se " "coup.2" x 300 ="right(a2,7)
if p then se " "coup.2" x 300 ="right(a3,7)
a1=(total.1=wintotal)*400;a2=(total.2=wintotal)*400;a3=(total.3=wintotal)*400
ht.1=ht.1+a1;ht.2=ht.2+a2;ht.3=ht.3+a3
se "n1cf Trip Completed "right(a1,16)
se " "right(a2,16)
if p then se " "right(a3,16)
a1=(totcards=0&total.1=wintotal)*300;a2=(totcards=0&total.2=wintotal)*300
a3=(totcards=0&total.3=wintotal)*300;ht.1=ht.1+a1;ht.2=ht.2+a2;ht.3=ht.3+a3
se "n1c7 Delayed Action "right(a1,16)
se " "right(a2,16)
if p then se " "right(a3,16)
a1=(index(distance.1,"200")=0&total.1=wintotal)*300
a2=(index(distance.2,"200")=0&total.2=wintotal)*300
a3=(index(distance.3,"200")=0&total.3=wintotal)*300
ht.1=ht.1+a1;ht.2=ht.2+a2;ht.3=ht.3+a3
se "n1cfSafe Trip(No 200s) "right(a1,16)
se " "right(a2,16)
if p then se " "right(a3,16)
ex1=0;ex2=0;ex3=0
if ext=1 then do
if total.1=1000 then ex1=200;else do;ex2=200;ex3=200;end ; end
if ext=2 then do
if total.2=1000 then ex2=200;else do;ex1=200;ex3=200;end ; end
if ext=3 then do
if total.3=1000 then ex3=200;else do;ex1=200;ex2=200;end ; end
ht.1=ht.1+ex1 ; ht.2=ht.2+ex2 ; ht.3=ht.3+ex3
se "n1c7 Game Extension "right(ex1,16)
se " "right(ex2,16)
if p then se " "right(ex3,16)
a1=((total.2+total.3)=0&total.1=wintotal)*500
a2=((total.1+total.3)=0&total.2=wintotal)*500
a3=((total.1+total.2)=0&total.3=wintotal)*500
ht.1=ht.1+a1;ht.2=ht.2+a2;ht.3=ht.3+a3
se "n1cf Shut-out Others "right(a1,16)
se " "right(a2,16)
if p then se " "right(a3,16)
se "n1cc"eq1 ; if p then se eq2
se "n1cb Hand Total "right(ht.1,16)
se " "right(ht.2,16)
if p then se " "right(ht.3,16)
pt.1=gt.1;pt.2=gt.2;pt.3=gt.3
if turns=0 then do;pt.1=gt.1-ht.1;pt.2=gt.2-ht.2;pt.3=gt.3-ht.3;end
se "n1cd Previous Total "right(pt.1,16)
se " "right(pt.2,16)
if p then se " "right(pt.3,16)
if turns>0 then do
gt.1=gt.1+ht.1;gt.2=gt.2+ht.2;gt.3=gt.3+ht.3;end
se "n1ca Grand Total "right(gt.1,16)
se " "right(gt.2,16)
if p then tr " "right(gt.3,16) ; else tr
tr bar
a=0 ; if gt.1>a then do ; a=gt.1 ; pl=1 ; end
if gt.2>a then do ; a=gt.2 ; pl=2 ; end
if gt.3>a then do ; a=gt.3 ; pl=3 ; end
turns=0 /* Reset `turns' to insure proper END OF HAND/GAME saving. */
z=name.pl;if players=4 then do;p=pl+2;z=z" and "name.p;end
if players=6 then do;p=pl+3;z=z" and "name.p;end
if playF.player=1 | (players>3 & playF.p=1) | amigascores=1 then call CHECKHSCORES
se prompt ; call SHOWHSCORES
if a>=5000 then do
se SHOWTXT("ce"z" cbWINS c7the game with cd"a" cfTotal Pointsc7!",6,1)
if lastsaved>0 then do
se SHOWTXT("c7Want to c9DELETE c7the cbSAVED c7game you just completed? cf[ceNocf]ce: s",9)
se "u";gc;a=result;if a~="Y" then tr "No";else do;tr "Yes";address command "delete "df||lastsaved
game.lastsaved="cf"lastsaved"cb. c7This cbSaved cdGame Slot c7is c9Emptyc7."
call open(f1,df,"w");do i=1 to 5;call writeln(f1,game.i);end i;call close(f1);end;end
if playF.player=1 | (players>3 & playF.p=1) | amigascores=1 then call CHECKGSCORES
se prompt ; call SHOWGSCORES
signal AGAIN ; end
if PlayF.player=1 | comp=0 then do
se SHOWTXT("c7A game is to cd5000 Pointsc7. Play the cenext c7hand now? cf[ceYescf]ce: s",9)
se "u";gc;c=result;call CHECK;if c~="N" then do;tr "Yes!";call SETUP
if players<4|players=6 then wintotal=700;else wintotal=1000
signal BEGIN;end
tr "No.";se SHOWTXT("ce"z" c7leaves with the most cfPointsc7: cd"a"c7!",6,1)
call SAVE
end
if PlayF.player=0 & comp=1 then do
if cpuAGN.player=2 | (cpuAGN.player=1 & random(1,2)=2) then do
se SHOWTXT("ce"name.player" c7wants to caplay c7another hand!",4,1)
call SETUP;if players<4|players=6 then wintotal=700;else wintotal=1000
signal BEGIN;end
se SHOWTXT("ce"name.player" c7does c9NOT c7want to caplay c7another hand!",6,1)
se SHOWTXT("ce"z" c7leaves with the most cfPointsc7: cd"a"c7!",6,1)
end
AGAIN:
se SHOWTXT("c7Would you like to cbStart c7another game now? cf[ceNocf]ce: s",7)
se "u";gc;a=result;call CHECK;if a="Y" then do;tr "Yes";signal START;end
else tr "No" ; changewhere oldwhere ; logentry "c6Played cbMille Bornesc6, cf"ver"c6!"
exit
SCREEN:;h=human;if players=4 & h>2 then h=h-2
if players=6 & h>3 then h=h-3;a="SCREEN"h;signal (a)
SCREEN1:;txt="Player";if players=4|players=6 then txt=" Team"
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr bar;tr "z7c0 "txt"z0cb:0Hz7c0Discardz0cb:"
tr "z7c4Safetiesz0cb:n2z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Goalz0cb:"
tr "Cz7c4Turnsz0cb:Cz7c4Cardsz0cb:Cz7c4Gamez0cb:n1z7c0 Hand z0cb:n1"
tr "Cz7c4 1 z0Cz7 2 z0Cz7 3 z0Cz7 4 z0Cz7 5 z0Cz7 6 z0Cz7 7 z0"
tr bar;tr "z7c0 "txt"z0cb:n1z7c4Safetiesz0cb:n1z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Gamez0cb:"
if players=3 | players=6 then do;tr bar
tr "z7c0 "txt"z0cb:n1z7c4Safetiesz0cb:n1z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Gamez0cb:"
end ; else do 5 ; tr ; end;tr bar
return
SCREEN2:;txt="Player";if players=4|players=6 then txt=" Team"
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
bar="cd"copies(d2c(196),79);tr bar
tr "z7c0 "txt"z0cb:n1z7c4Safetiesz0cb:n1z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Gamez0cb:"
tr bar;tr "z7c0 "txt"z0cb:0Hz7c0Discardz0cb:n1z7c4Safetiesz0cb:n2z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Goalz0cb:"
tr "Cz7c4Turnsz0cb:Cz7c4Cardsz0cb:Cz7c4Gamez0cb:n1z7c0 Hand z0cb:n1"
tr "Cz7c4 1 z0Cz7 2 z0Cz7 3 z0Cz7 4 z0Cz7 5 z0Cz7 6 z0Cz7 7 z0"
if players=3 | players=6 then do;tr bar
tr "z7c0 "txt"z0cb:n1z7c4Safetiesz0cb:n1z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Gamez0cb:"
end ; else do 5 ; tr ; end;tr bar
return
SCREEN3:;txt="Player";if players=4|players=6 then txt=" Team"
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
bar="cd"copies(d2c(196),79);tr bar
tr "z7c0 "txt"z0cb:n1z7c4Safetiesz0cb:n1z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Gamez0cb:"
tr bar;tr "z7c0 "txt"z0cb:n1z7c4Safetiesz0cb:n1z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Gamez0cb:"
tr bar;tr "z7c0 "txt"z0cb:50Hz7c0Discardz0cb:"
tr "z7c4Safetiesz0cb:n2z7c0Distancez0cb:"
tr "z7c4 Battlez0cb:Cz7c4Speedz0cb:Cz7c4Totalz0cb:Cz7c4Goalz0cb:"
tr "Cz7c4Turnsz0cb:Cz7c4Cardsz0cb:Cz7c4Gamez0cb:n1z7c0 Hand z0cb:n1"
tr "Cz7c4 1 z0Cz7 2 z0Cz7 3 z0Cz7 4 z0Cz7 5 z0Cz7 6 z0Cz7 7 z0";tr bar
return
DISPLAY:;h=human;if players=4 & h>2 then h=h-2
if players=6 & h>3 then h=h-3;a="DISPLAY"h
cardsleft=left(totcards-card,3);if cardsleft<0 then cardsleft=0
signal (a)
DISPLAY1:
hd="c7(cb1c7) ce"name.1;if players=4 then hd=hd" ca& c7(cb3c7) ce"name.3
if players=6 then hd=hd" ca& c7(cb4c7) ce"name.4
tr "1Hce"hd"9H"GROWCARD(discard,1)""
if words(safety.1)>0 then do
do i=1 to words(safety.1) ; call BIGCARD(word(safety.1,i))
tr ""i*12-2"H"cd1 ; tr ""i*12-2"H"cd2
end i
end
if words(distance.1)>0 then do ; se "1H"
do i=1 to words(distance.1)
if i>1 then se "cb, " ; se "cf"word(distance.1,i)
end i ; tr
end
se "1H"GROWCARD(battle.1,1)"4H"GROWCARD(speed.1,1)
tr "9Hcf"total.1"5Hcd"left(wintotal,4)
hd1="" ; hd2="" ; pl=1
if players=4 & ((playF.3=1 & player>2) | playF.1=0) then pl=3
if players=6 & ((playF.4=1 & player>3) | playF.1=0) then pl=4
tr "Hce"left(name.pl"'s",25)"4Hcd"turns
tr "9Hca"cardsleft"5Hce"gt.1
do i=1 to words(hand.pl) ; call BIGCARD(word(hand.pl,i))
hd1=hd1||cd1" " ; hd2=hd2||cd2" "
end i ; se "0H"hd1"" ; se "10H"hd2""
hd="c7(cb2c7) ce"name.2;if players=4 then hd=hd" ca& c7(cb4c7) ce"name.4
if players=6 then hd=hd" ca& c7(cb5c7) ce"name.5
tr "11Hce"hd
if words(safety.2)>0 then do ; se "11H"
do i=1 to words(safety.2)
if i>1 then se "cb, " ; se strip(GROWCARD(word(safety.2,i),1))
end i ; tr
end
if words(distance.2)>0 then do ; se "11H"
do i=1 to words(distance.2)
if i>1 then se "cb, " ; se "cf"word(distance.2,i)
end i ; tr
end
tr "11H"GROWCARD(battle.2,1)"34H"GROWCARD(speed.2,1)
tr "59Hcf"total.2"75Hce"gt.2
if players=3 | players=6 then do
hd="c7(cb3c7) ce"name.3;if players=6 then hd=hd" ca& c7(cb6c7) ce"name.6
tr "11Hce"hd
if words(safety.3)>0 then do ; se "11H"
do i=1 to words(safety.3)
if i>1 then se "cb, " ; se strip(GROWCARD(word(safety.3,i),1))
end i ; tr
end
if words(distance.3)>0 then do ; se "11H"
do i=1 to words(distance.3)
if i>1 then se "cb, " ; se "cf"word(distance.3,i)
end i ; tr
end
tr "11H"GROWCARD(battle.3,1)"34H"GROWCARD(speed.3,1)
tr "59Hcf"total.3"75Hce"gt.3
end;call SHOWOLM
return
DISPLAY2:
hd="c7(cb1c7) ce"name.1;if players=4 then hd=hd" ca& c7(cb3c7) ce"name.3
if players=6 then hd=hd" ca& c7(cb4c7) ce"name.4 ; tr "1Hce"hd
if words(safety.1)>0 then do ; se "1H"
do i=1 to words(safety.1)
if i>1 then se "cb, " ; se strip(GROWCARD(word(safety.1,i),1))
end i ; tr
end
if words(distance.1)>0 then do ; se "1H"
do i=1 to words(distance.1)
if i>1 then se "cb, " ; se "cf"word(distance.1,i)
end i ; tr
end
se "1H"GROWCARD(battle.1,1)"4H"GROWCARD(speed.1,1)
tr "9Hcf"total.1"5Hce"gt.1
hd="c7(cb2c7) ce"name.2;if players=4 then hd=hd" ca& c7(cb4c7) ce"name.4
if players=6 then hd=hd" ca& c7(cb5c7) ce"name.5
tr "1Hce"hd"9H"GROWCARD(discard,1)""
if words(safety.2)>0 then do
do i=1 to words(safety.2) ; call BIGCARD(word(safety.2,i))
tr ""i*12-2"H"cd1 ; tr ""i*12-2"H"cd2
end i
end
if words(distance.2)>0 then do ; se "11H"
do i=1 to words(distance.2)
if i>1 then se "cb, " ; se "cf"word(distance.2,i)
end i ; tr
end
tr "11H"GROWCARD(battle.2,1)"34H"GROWCARD(speed.2,1)
tr "59Hcf"total.2"75Hcd"left(wintotal,4)
hd1="" ; hd2="" ; pl=2
if players=4 & ((playF.4=1 & player>2) | playF.2=0) then pl=4
if players=6 & ((playF.5=1 & player>3) | playF.2=0) then pl=5
tr "1Hce"left(name.pl"'s",25)"34Hcd"turns
tr "59Hca"cardsleft"75Hce"gt.2
do i=1 to words(hand.pl) ; call BIGCARD(word(hand.pl,i))
hd1=hd1||cd1" " ; hd2=hd2||cd2" "
end i ; se "10H"hd1"" ; se "10H"hd2""
if players=3 | players=6 then do
hd="c7(cb3c7) ce"name.3;if players=6 then hd=hd" ca& c7(cb6c7) ce"name.6
tr "11Hce"hd
if words(safety.3)>0 then do ; se "11H"
do i=1 to words(safety.3)
if i>1 then se "cb, " ; se strip(GROWCARD(word(safety.3,i),1))
end i ; tr
end
if words(distance.3)>0 then do ; se "11H"
do i=1 to words(distance.3)
if i>1 then se "cb, " ; se "cf"word(distance.3,i)
end i ; tr
end
tr "11H"GROWCARD(battle.3,1)"34H"GROWCARD(speed.3,1)
tr "59Hcf"total.3"75Hce"gt.3
end;call SHOWOLM
return
DISPLAY3:
hd="c7(cb1c7) ce"name.1 ; if players=6 then hd=hd" ca& c7(cb4c7) ce"name.4 ; tr "1Hce"hd
if words(safety.1)>0 then do ; se "1H"
do i=1 to words(safety.1)
if i>1 then se "cb, " ; se strip(GROWCARD(word(safety.1,i),1))
end i ; tr
end
if words(distance.1)>0 then do ; se "1H"
do i=1 to words(distance.1)
if i>1 then se "cb, " ; se "cf"word(distance.1,i)
end i ; tr
end
se "1H"GROWCARD(battle.1,1)"4H"GROWCARD(speed.1,1)
tr "9Hcf"total.1"5Hce"gt.1
hd="c7(cb2c7) ce"name.2 ; if players=6 then hd=hd" ca& c7(cb5c7) ce"name.5 ; tr "1Hce"hd
if words(safety.2)>0 then do ; se "1H"
do i=1 to words(safety.2)
if i>1 then se "cb, " ; se strip(GROWCARD(word(safety.2,i),1))
end i ; tr
end
if words(distance.2)>0 then do ; se "11H"
do i=1 to words(distance.2)
if i>1 then se "cb, " ; se "cf"word(distance.2,i)
end i ; tr
end
tr "11H"GROWCARD(battle.2,1)"34H"GROWCARD(speed.2,1)
tr "59Hcf"total.2"75Hce"gt.2
hd="c7(cb3c7) ce"name.3;if players=6 then hd=hd" ca& c7(cb6c7) ce"name.6
tr "11Hce"hd"59H"GROWCARD(discard,1)""
if words(safety.3)>0 then do
do i=1 to words(safety.3) ; call BIGCARD(word(safety.3,i))
tr ""i*12-2"H"cd1 ; tr ""i*12-2"H"cd2
end i
end
if words(distance.3)>0 then do ; se "11H"
do i=1 to words(distance.3)
if i>1 then se "cb, " ; se "cf"word(distance.3,i)
end i ; tr
end
tr "11H"GROWCARD(battle.3,1)"34H"GROWCARD(speed.3,1)
tr "59Hcf"total.3"75Hcd"left(wintotal,4)
hd1="" ; hd2="" ; pl=3
if players=6 & ((playF.6=1 & player>3) | playF.3=0) then pl=6
tr "1Hce"left(name.pl"'s",25)"34Hcd"turns
tr "59Hca"cardsleft"75Hce"gt.3
do i=1 to words(hand.pl) ; call BIGCARD(word(hand.pl,i))
hd1=hd1||cd1" " ; hd2=hd2||cd2" "
end i ; se "10H"hd1"" ; se "10H"hd2"" ; call SHOWOLM
return
SHOWTXT:;aa=Arg(1);cc=Arg(2);zy=(right(aa,3)="s")
wait=1 ; if ~fast then wait=((length(aa)-cc*3)*2)%1
if waitF>0 & Arg(3)="" then wait=waitF
se "1Hc7"center(aa,79+cc*3);if zy then return ""
if comp=0 & breakinF=0 then return ""
do wait;mg;k=result
if k="q" | k="8" | k="9" then do ; a="" ; signal QUIT ; end
if k="r" | k="*" then do ; call SCREEN ; call DISPLAY ; end
if (k="b" | k=".") & comp=0 & playF.player=0 & finish=0 then signal BREAKIN2
if (k="b" | k=".") & comp=1 then signal BREAKIN
end
return ""
SHOWOLM:
gu 1101743;olm=result;if olm=olmO then return
if olm=0 then se "68Hcd"copies(d2c(196),11)
else se "68HcfOLMcd"d2c(196)"cfWaiting"
return
BREAKIN:;call CHECK
se SHOWTXT("cbBreakIn c7Options: cf<cdQcf>cduit c7game, cf<caScf>cait-Inc7, cf[cbRESUMEcf]ce: s",16)
se "u";gc;k=result;if k="Q" then do;tr "cdQuit";a="";signal QUIT;end
if k~="S" then do;tr "cbResume";return "";end;else tr "caSit-In"
se SHOWTXT("caSit-In c7place of which ceAmiga Playerc7? cf(ce1cf-ce"players"cf/cb[ceOopscb]cf)ce: s",14)
se "u";gc;a=result;if a<1|a>players|datatype(a,"n")=0 then do
tr "Oops";return "";end;else tr a
se SHOWTXT("ce"handle" c7now cbsitting in c7for ce"name.a"c7!",6,1)
comp=0;human=a;playF.a=1;name.a=handle;breakin=1
if players=4 | players=6 then do
se SHOWTXT("c7Want to caSit-In c7on the cePartner c7as well? cf[ceNocf]ce: s",9)
se "u";gc;b=result;if b="Y" then do;tr "Yes"
if players=6 then do;if a<4 then a=a+3;else a=a-3;end
if players=4 then do;if a<3 then a=a+2;else a=a-2;end
playF.a=1;name.a=word(realname,1);end;else tr "No."
end;call SCREEN;call DISPLAY
return ""
BREAKIN2:;call CHECK
if players<4 then se SHOWTXT("cbBreakIn c7Option: cf<caScf>cawap c7Chairs or cf[cbRESUMEcf]ce: s",11)
else se SHOWTXT("cbBreakInc7: cf<caScf>cawap c7Chairs, cf<ceTcf>ceakec7, cf<c9Kcf>c9ickc7, or cf<cdPcf>cdlay c7Partner, cf[cbRESUMEcf]ce: s",26)
se "u";gc;k=result
if k~="S" then if players<4 & index("TKP",k)>0 then do;tr "cbResume";return "";end
if k="S" then do;tr "caSwap"
if players>2 then do
se SHOWTXT("ce"name.human"c7, move from chair ca"human" c7to which chair? cf(ce1c7-ce"players"c7/cf[cbOopscf])ce: s",13)
se "u";gc;a1=result;tr a1
if a1<1|a1>players|(players=6&a1=5)|a1=human|datatype(a1,"n")=0 then do;tr "cbOops";return "";end
end;else do;a1=1;if human=1 then a1=2;end;pa=0
if players=4 then do
p=human+2;if human>2 then p=human-2
if playF.p=1 then do;pa=1
aa=a1+2;if a1>2 then aa=a1-2;end ; end
if players=6 then do
p=human+3;if human>3 then p=human-3
if playF.p=1 then do;pa=1
aa=a1+3;if a1>3 then aa=a1-3;end ; end
playF.a1=1 ; playF.human=0 ; n=name.a1
name.a1=name.human ; name.human=n
cpu=cpu.a1;cpu.a1=cpu.human;cpu.human=cpu
cpus=translate(cpus,"X",a1);cpus=translate(cpus,"Y",human)
cpus=translate(cpus,a1,"Y");cpus=translate(cpus,human,"X")
if pa then do ; playF.aa=1 ; playF.p=0
n=name.aa ; name.aa=name.p ; name.p=n
cpu=cpu.aa;cpu.aa=cpu.p;cpu.p=cpu
cpus=translate(cpus,"X",aa);cpus=translate(cpus,"Y",p)
cpus=translate(cpus,aa,"Y");cpus=translate(cpus,p,"X") ; end
human=a1 ; breakin=1 ; call SCREEN ; return "" ; end
if players=4 then do;a1=human+2;if human>2 then a1=human-2;end
else do;a1=human+3;if human>3 then a1=human-3;end
if k="T" then do;tr "ceTake"
if playF.a1=1 then do
se SHOWTXT("c7You have to c9KICK c7your ceHUMAN c7partner out of the game first!",5,1)
return "" ; end
se SHOWTXT("ce"name.human"c7, take which player as your new caPartnerc7? cf(ce1c7-ce"players"c7/cf[cbOopscf])ce: s",13)
se "u";gc;b=result
if b<1|b>players|(players=6&b=5)|b=human|b=a1 then do;tr "cbOops";return "";end
tr b;se SHOWTXT("Take "name.b" as your new partner? [Yes]: s",0)
se "u";gc;c=result;if c="N" then do;tr "No";return "";end;else tr "Yes"
name=name.a1;name.a1=name.b;name.b=name;breakin=1
cpus=translate(cpus,"X",a1);cpus=translate(cpus,"Y",b)
cpus=translate(cpus,a1,"Y");cpus=translate(cpus,b,"X")
cpu=cpu.a1;cpu.a1=cpu.b;cpu.b=cpu;call SCREEN;return ""
end
if k="K" then do;tr "c9Kick"
if playF.a1=0 then do
se SHOWTXT("c7Your partner isn't caHUMANc7, and we c9BOOT c7the ceAmigac7; we don't c9Kick c7it!",9,1)
return "" ; end
se SHOWTXT("ce"name.human"c7, you want to c9KICK c7your caPartner c7out of the game? cf[ceNocf]ce: s",10)
se "u";gc;b=result;if b~="Y" then do;tr "No";return "";end;else tr "Yes"
playF.a1=0;parse var cp.a1 name.a1"|"j;breakin=1;call SCREEN;return ""
end
if k="P" then do;tr "cdPlay"
if playF.a1=1 then do
se SHOWTXT("c7You're already playing your caPartner's c7seat as well as your own!",3,1)
return "" ; end
se SHOWTXT("ce"name.human"c7, you want to cbPLAY c7your caPartner's c7hand as well? cf[ceNocf]ce: s",10)
se "u";gc;b=result;if b~="Y" then do;tr "No";return "";end;else tr "Yes"
playF.a1=1;gu 3;name.a1=word(result,1);breakin=1;call SCREEN;return ""
end
return ""
GROWCARD:
aa=Arg(1);ab=Arg();cp=0;if left(aa,1)="<" then do;cp=1;parse var aa "<"aa">";end
if datatype(aa,"n")=1 & ab=1 then return "c7a cb`"strip(left("cf"aa" cfMc7ile",15+3*3))"cb'"
if datatype(aa,"n")=1 & ab=2 then return left("cfcf"aa" cfMc7ile cfCc7ard",15+6*3)
if aa="" then return " " ; else ac=find(gc1,aa)
an="c7a `";if index("OG AC RP EL",aa)>0 then an="c7an `"
if index("ET PP DA RW",aa)>0 then an="c7the `"
aa=left(translate(word(gc2,ac)," ","_"),15+4*3)
if cp then aa="cd>"strip(aa)"cd<";if ab=1 then aa=an||strip(aa)"c7'"
return aa
BIGCARD:
aa=Arg(1);cp=0;if left(aa,1)="<" then do;cp=1;parse var aa "<"aa">";end
if datatype(aa,"n")=1 then do
co=0;if aa>50 then co=1;if aa>100 then co=4
cd1="z6c"co" "left(aa,3)" z0"
cd2="z6c"co" Miles z0";return;end
if aa="" then do;cd1="";cd2="";return;end
aa=find(gc1,aa)
cd1=translate(word(gc3,aa)," ","_")
cd2=translate(word(gc4,aa)," ","_")
if cp then do
cd1="cd>"cd1"cd<" ; cd2="cd>"cd2"cd<" ; end
return
DEAL:
do i=1 to 6
do j=1 to players
a=i+(j*6)-6
hand.j=hand.j' 'cd.a
end j
end i
card=(players*6)
return
OPENDECK:
a=cards1 ; if players<4 then a=cards2 ; totcards=words(a)
do i=1 to totcards ; cd.i=word(a,i) ; end i
SHUFFLEDECK:
a2=totcards%2 ; se "1HC"
do i=1 to 4 ; se "cbShufflec7, "
do j=1 to 50
v1=random(1,a2) ; v2=random(a2+1,totcards)
a=cd.v1 ; cd.v1=cd.v2 ; cd.v2=a
end j ; se "caCutc7, "
do j=1 to a2 ; a1=a2+1
a=cd.j ; cd.j=cd.a1 ; cd.a1=a
end j
end i ; tr "cdReadyc7!"
return
SETUP:
hand.="" ; battle.="" ; speed.="" ; fast=0 ; save=0
distance.="" ; safety.="" ; total.=0 ; discard="" ; play=1 ; pl200.=0
player=1 ; coup.=0 ; ht.=0 ; ext=0 ; finish=0 ; bar="cd"copies(d2c(196),79)
prompt="n1"center("ce<c7Tap cdANY KEY c7Nowce>g1n1",79+3*7)
gc1="OG FT AC SL ST GS SP RP EL RL ET PP DA RW" ; breakin=0 ; os.="" ; ob.=""
gc2="c9Oc1ut_of_c9Gc1as c9Fc1lat_c9Tc1ire c9Ac1uto_c9Ac1ccident "
gc2=gc2"c9Sc1peed_c9Lc1imit c9Sc1top_(c9Rc1ed) ceSccome_ceGccasoline "
gc2=gc2"ceSccpare_ceTccire ceAccuto_ceRccepairs ceEccnd_of_ceLccimit "
gc2=gc2"caRc2oll_(caGc2reen) caEc2xtra_caTc2ank caPc2uncture_caPc2roof "
gc2=gc2"caDc2riving_caAc2ce caRc2ight_of_caWc2ay"
gc3="z1cf_Out_Of__z0 z1cf__Flat___z0 z1cf___Auto__z0 z1ce__Speed__z0 z1cf__Stop___z0 "
gc3=gc3"z4cb__Some___z0 z4cb__Spare__z0 z4cb__Auto___z0 z4ce_End__Of_z0 z4ca__Roll___z0 "
gc3=gc3"z2cb_Extra___z0 z2cbPuncture_z0 z2cb_Driving_z0 z2cb__Right__z0"
gc4="z1cf___Gas___z0 z1cf___Tire__z0 z1cf_Accidentz0 z1ce__Limit__z0 z1cf__(Red)__z0 "
gc4=gc4"z4cbGasoline_z0 z4cb___Tire__z0 z4cb_Repairs_z0 z4ce__Limit__z0 z4ca_(Green)_z0 "
gc4=gc4"z2cb___Tank__z0 z2cb__Proof__z0 z2cb___Ace___z0 z2cb_Of__Way_z0"
a="EL RL 50 RL 75 50 FT 100 AC 50 75 100 100 RL RP SP 50 RP 50 SL 25 ST RL "
a=a"200 25 RL ST EL 25 75 75 FT 200 25 RL 25 100 AC GS RL SP 25 50 ET 75 "
a=a"RL 50 OG 100 GS 100 RL 100 SP 100 RP RL ST 75 GS PP RP 100 GS 25 DA GS "
a=a"SL SP 75 100 50 50 200 SL OG RL SP 100 75 SP EL FT 75 SL RL 25 OG ST "
a=a"EL 200 RP 25 RP 50 EL EL ST 75 25 RL RL 100 RW AC GS" ; cards1=a
a="75 RL RL 50 SL 25 100 RL AC 25 RL SP 50 RL 75 50 RP AC FT GS ST ST 100 "
a=a"OG OG EL GS 100 50 GS GS SL EL RL 75 25 200 50 EL RP SP RP RW PP 200 "
a=a"FT EL 100 GS 75 25 100 100 RP 50 RL 75 ST 50 RP 25 RL 25 100 200 25 RL "
a=a"100 ET RL 50 RL 200 EL ST SP RL SL 100 RL 75 100 50 DA 25 EL 50 GS 25 "
a=a"75 75 RL SP 25 75 100 SP SP RP 75 100" ; cards2=a
return
SETUP2:
cp.1="Dan Amiga|1 2 3 4 5 6 7|0|1|2|x"
cp.2="Joe Amiga|4 1 2 3 5 6 7|1|2|1|x"
cp.3="Ray Amiga|6 4 1 2 3 5 7|2|0|0|x"
cp.4="Bev Amiga|1 4 2 3 5 6 7|1|0|1|x"
cp.5="Kim Amiga|4 1 6 2 3 5 7|2|1|0|x"
cp.6="Pat Amiga|1 4 6 2 3 5 7|0|2|2|x"
cpu="2 4 6 5 3 1" ; do i=1 to 6 ; cpu.i=word(cpu,i) ; end i ; cpus=""
do 20;i=random(1,6);j=random(1,6);a=cpu.i;cpu.i=cpu.j;cpu.j=a;end
do i=1 to 6 ; a=cpu.i ; cpus=cpus||a" "
parse var cp.a name.i"|"cpu.i"|"cpu200.i"|"cpuEXT.i"|"cpuAGN.i"|"j
end i
return
SHOWHSCORES:
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr bar;tr "CcfC u r r e n t r1ca H I G H H A N D r0 cfS c o r e sn1"
tr "Cc7For cd"players"-Player c7Gamesn1"
tr "CcfPoints caMiles cbDate/Time Achieved cePlayer Name(s)";tr bar
do i=1 to 10;se "cf"right(scoreH.i,16);parse var scoreHt.i v1 v2 v3 v4
tr "ca"right(v1,7)" cb"v2" "right(v3,8)" ce"v4;end i;tr bar;se prompt
return
SHOWGSCORES:
tr "f1@4z4ce CNet Mille Bornes, "ver" last updated "date" by Dotoran of Frontiers BBS z0"
tr bar;tr "CcfC u r r e n t r1c9 H I G H G A M E r0 cfS c o r e sn1"
tr "Cc7For cd"players"-Player c7Gamesn1"
tr "CcfPoints caMiles cbDate/Time Achieved cePlayer Name(s)";tr bar
do i=1 to 10;se "cf"right(scoreG.i,16);parse var scoreGt.i v1 v2 v3 v4
tr "ca"right(v1,7)" cb"v2" "right(v3,8)" ce"v4;end i;tr bar;se prompt
return
CHECKHSCORES:
do i=1 to 10
if ht.play>scoreH.i then do ; if breakin=1 then leave i
tr "n1cbCongratulationsc7! This is a cdHigh Hand cfScore c7for ce"players"-Player c7games!"
do j=10 to i+1 by -1 ; k=j-1 ; scoreH.j=scoreH.k ; scoreHt.j=scoreHt.k ; end j
v=date();d=word(v,1)"-"word(v,2)"-"right(word(v,3),2)" "time("c")
scoreH.i=ht.play ; ab=wintotal" "d" "name.play ; p=0
if players=4 then p=play+2 ; if players=6 then p=play+3
if p>0 then ab=ab" c7and ce"name.p ; scoreHt.i=ab ; call SAVEHSCORES
call READHSCORES ; leave i ; end
end i
return
CHECKGSCORES:
do i=1 to 10
if gt.play>scoreG.i then do ; if breakin=1 then leave i
tr "n1cbCongratulationsc7! This is a cdHigh Game cfScore c7for ce"players"-Player c7games!"
do j=10 to i+1 by -1 ; k=j-1 ; scoreG.j=scoreG.k ; scoreGt.j=scoreGt.k ; end j
v=date();d=word(v,1)"-"word(v,2)"-"right(word(v,3),2)" "time("c")
scoreG.i=gt.play ; ab=wintotal" "d" "name.play ; p=0
if players=4 then p=play+2 ; if players=6 then p=play+3
if p>0 then ab=ab" c7and ce"name.p ; scoreGt.i=ab ; call SAVEGSCORES
call READGSCORES ; leave i ; end
end i
return
READHSCORES:;if ~exists(path"CNetMilles.HiHands"players) then call MAKEHSCORES
call open(f1,path"CNetMilles.HiHands"players,"r")
do i=1 to 10;y=readln(f1);parse var y scoreH.i" "y;scoreHt.i=strip(y);end i
call close(f1)
return
READGSCORES:;if ~exists(path"CNetMilles.HiGames"players) then call MAKEGSCORES
call open(f1,path"CNetMilles.HiGames"players,"r")
do i=1 to 10;y=readln(f1);parse var y scoreG.i" "y;scoreGt.i=strip(y);end i
call close(f1)
return
SAVEHSCORES:
call open(f1,path"CNetMilles.HiHands"players,"w")
do i=1 to 10;call writeln(f1,scoreH.i" "scoreHt.i);end i
call close(f1)
return
SAVEGSCORES:
call open(f1,path"CNetMilles.HiGames"players,"w")
do i=1 to 10;call writeln(f1,scoreG.i" "scoreGt.i);end i
call close(f1)
return
MAKEHSCORES:;scoreH.=0;scoreHt.="700 20-Dec-96 09:16AM No One Yet";call SAVEHSCORES;return
MAKEGSCORES:;scoreG.=0;scoreGt.="700 20-Dec-96 09:16AM No One Yet";call SAVEGSCORES;return
TITLE:
tr ">7ccÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» "
tr ">7ºcf°±²c8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcf²±°ccº "
tr ">7ºc8°±²cfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8Ûßßcfßßßc8ßßßcfßßßc8ßßßcfßßßc8ßßßcfßßßc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8²±°ccº "
tr ">7ºcf°±²c8ÛÛÛcfÛÛÛc8ÛÛÛ c0z3ßßßßßßß cfÜ Ü Ü Ü Ü ÜÜÜ c0ßßßßßßz0cf ßcfÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛc7²±°ccº "
tr ">7ºc8°±²cfÛÛÛc8ÛÛÛcfÛÛÛc0z3Û c9ßÛßßßÜ cfÛßÜßÛ Û Û Û ÛÜ c9ÜßßßßÜ z0 c8ÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8²±°ccº "
tr ">7ºcf°±²c8ÛÛÛcfÛÛÛc8ÛÛÛcfz0Üc0z3Û c9Û Û cfÛ Û Û Û Û Û c9Û c0z3ÜÜz0 cfÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛc7²±°ccº "
tr ">7ºc8°±²cfÛÛÛc8ÛÛÛcfÛÛÛz0c8Ûc0z3Û c9Û Üß cfß ß ß ßßß ßßß ßßß c9ßÜ c0z3Ûz0cfßz0c8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8²±°ccº "
tr ">7ºcf°±²c8ÛÛÛcfÛÛÛc8ÛÛÛcfÛc0z3Û c9Û ßÜ ÜßßÜ ÛßßÜ ÛÜ Û Ûßß ßÜ c0z3ßz0 cfÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛc7²±°ccº "
tr ">7ºc8°±²cfÛÛÛc8ÛÛÛcfÛÛÛc8ßc0z3Û c9Û Û Û Û ÛÜÜß Û ßÛ Ûß Û z0 c8ÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8²±°ccº "
tr ">7ºcf°±²c8ÛÛÛcfÛÛÛc8ÛÛÛc0z3Û c9ÜÛÜÜÜÜß ßÜÜß Û Û Û Û ÛÜÜ ßÜÜÜÜß z0 cfÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛc7²±°ccº "
tr ">7ºc8°±²cfÛÛÛc8ÛÛÛcfÛÛÛ c0z3ÜÜÜÜÜÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛz0c8ÜÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8²±°ccº "
tr ">7ºcf°±²c8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛc7²±°ccº "
tr ">7ºc8°±²cfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8ÛÛÛcfÛÛÛc8²±°ccº "
tr ">7ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ "
tr ">7º cfTHE RACE TO 1000 MILES - Amiga CNet Conversion by Dotoran ccº "
tr ">7ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ " /* ¼ */
return
CHECK:;if ARG() & ARG(1)~="###PANIC" then return ARG(1)
getcarrier;if result="TRUE" then if ARG() then return ARG(1);else return
logentry "Lost Carrier!!";bufferflush;changewhere oldwhere;exit
SYNTAX:;ERROR:;IOERR:;e1="n1 Error: "rc" ("errortext(rc)")"
e2=" Line: "left(sigl,4)"File:";c="`"fp", "ver"'";e2=e2" "c;tr e1;tr e2
logentry e1;logentry e2;e=strip(translate(sourceline(sigl),"\{",""))
do while e~="";e3="Source: "left(e,37);tr e3;logentry e3;e=substr(e,38);end
bufferflush
/**************************************************************************\
\****************************************** Frontiers BBS (716)/823-9892 **/